# -*- coding: utf-8 -*-
import jsonimport mod.client.extraClientApi as clientApifrom legendaryPowerClientScript.ui.base.baseComponent import BaseComponentfrom legendaryPowerClientScript.ui.base.buttonComponent import ButtonComponentfrom legendaryPowerClientScript.ui.base.labelComponent import LabelComponentfrom legendaryPowerClientScript.util import apiUtilclass ItemComponent(ButtonComponent):
    """
    ItemComponent类是继承自ButtonComponent的组件，用于显示游戏中的物品。
    ui文件中，一个完整的物品组件包含以下结构（均为可选，斜杠分隔开表示两个均可）：

    按钮组件:
        selected 图片组件： 表示物品是否当前被选中
        selectable/can_click 图片组件： 表示物品是否是可选项
        rank 图片组件： 表示物品的品质，会根据物品品质设置为 textures/ui/rank/品质
        itemNum/amount/item_num 文字组件： 物品的数量，有时也会显示些其它的字
        star 图片组件： 物品的星级
        new 图片组件： 是否是新物品
        icon/item_renderer/item 物品渲染组件： 物品图标
        picIcon 图片组件： 用图片显示物品图标，用得较少
        cooldown_bar 进度条组件： 物品冷却条
        cooldown 文字组件： 物品冷却剩余时间
    """

    def SetTouchUp(self, callback):
        """
        设置物品按钮点击的回调函数。

        Args:
            - callback (function): 回调函数
        """
        pass

    def SetItem(self, item):
        # type: (itemDict) -> None
        """
        设置物品。

        Args:
            - item (itemDict): 物品字典
        """
        pass

    def SetCooldown(self, percent, text=None):
        # type: (int, str) -> None
        """
        设置冷却时间。

        Args:
            - percent (int): 冷却百分比
            - text (str): 冷却文本
        """
        pass

    def SetSelected(self, selected):
        # type: (bool) -> None
        """
        设置物品是否被选中。

        Args:
            - selected (bool): 是否被选中
        """
        pass

    def RemoveNew(self, category, slot):
        # type: (bool) -> None
        """
        将“新”标识移除。需要传入物品的槽位类型和槽位，以同步给服务端“新”的状态

        Args:
            - selected (bool): 是否被选中
        """
        pass

